﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Data;

using Server.Items;

namespace RunUOGenerator
{


    /// <summary>
    /// Summary description for WeaponItem
    /// </summary>
    public class WeaponItem : ScriptItem
    {
        
        private string _WeaponQuality = "";
        private string _WeaponType = "";
        private string _WeaponDamageLevel = "";
        private string _WeaponAccuracyLevel = "";
        private string _WeaponDurabilityLevel = "";
        private string _WeaponAnimation = "";



        // PROPERTIES
        public string WeaponQuality { get { return _WeaponQuality; } set { _WeaponQuality = value; } }
        public string WeaponType { get { return _WeaponType; } set { _WeaponType = value; } }
        public string WeaponDamageLevel { get { return _WeaponDamageLevel; } set { _WeaponDamageLevel = value; } }
        public string WeaponAccuracyLevel { get { return _WeaponAccuracyLevel; } set { _WeaponAccuracyLevel = value; } }
        public string WeaponDurabilityLevel { get { return _WeaponDurabilityLevel; } set { _WeaponDurabilityLevel = value; } }
        public string WeaponAnimation { get { return _WeaponAnimation; } set { _WeaponAnimation = value; } }

        public string PrimaryAbility { get { return null; } }
        public string SecondaryAbility { get { return null; } }

        public int DefMaxRange { get { return 1; } }
        public int DefHitSound { get { return 0; } }
        public int DefMissSound { get { return 0; } }
        //public string DefSkill { get { return SkillName.Swords; } }
        //public WeaponType DefType { get { return WeaponType.Slashing; } }
        //public WeaponAnimation DefAnimation { get { return WeaponAnimation.Slash1H; } }

        public int AosStrengthReq { get { return 0; } }
        public int AosDexterityReq { get { return 0; } }
        public int AosIntelligenceReq { get { return 0; } }
        public int AosMinDamage { get { return 0; } }
        public int AosMaxDamage { get { return 0; } }
        public int AosSpeed { get { return 0; } }
        public int AosMaxRange { get { return DefMaxRange; } }
        public int AosHitSound { get { return DefHitSound; } }
        public int AosMissSound { get { return DefMissSound; } }
        //public string AosSkill { get { return DefSkill; } }
        //public WeaponType AosType { get { return DefType; } }
        //public WeaponAnimation AosAnimation { get { return DefAnimation; } }

        public int OldStrengthReq { get { return 0; } }
        public int OldDexterityReq { get { return 0; } }
        public int OldIntelligenceReq { get { return 0; } }
        public int OldMinDamage { get { return 0; } }
        public int OldMaxDamage { get { return 0; } }
        public int OldSpeed { get { return 0; } }
        public int OldMaxRange { get { return DefMaxRange; } }
        public int OldHitSound { get { return DefHitSound; } }
        public int OldMissSound { get { return DefMissSound; } }
        //public string OldSkill { get { return DefSkill; } }
        //public WeaponType OldType { get { return DefType; } }
        //public WeaponAnimation OldAnimation { get { return DefAnimation; } }

        public int InitMinHits { get { return 0; } }
        public int InitMaxHits { get { return 0; } }

        public bool CanFortify { get { return true; } }


        // METHODS
        public WeaponItem()
        {
        }

        /// <summary>
        /// This method returns a list of WeaponQuality.
        /// </summary>
        public ArrayList GetWeaponQuality()
        {
            ArrayList list = new ArrayList();
            foreach (WeaponQuality obj in Enum.GetValues(typeof(WeaponQuality)))
            {
                list.Add(obj.ToString());
            }
            return list;
        }
        /// <summary>
        /// This method returns a list of WeaponType.
        /// </summary>
        public ArrayList GetWeaponType()
        {
            ArrayList list = new ArrayList();
            foreach (WeaponType obj in Enum.GetValues(typeof(WeaponType)))
            {
                list.Add(obj.ToString());
            }
            return list;
        }
        /// <summary>
        /// This method returns a list of WeaponDamageLevel.
        /// </summary>
        public ArrayList GetWeaponDamageLevel()
        {
            ArrayList list = new ArrayList();
            foreach (WeaponDamageLevel obj in Enum.GetValues(typeof(WeaponDamageLevel)))
            {
                list.Add(obj.ToString());
            }
            return list;
        }
        /// <summary>
        /// This method returns a list of WeaponAccuracyLevel.
        /// </summary>
        public ArrayList GetWeaponAccuracyLevel()
        {
            ArrayList list = new ArrayList();
            foreach (WeaponAccuracyLevel obj in Enum.GetValues(typeof(WeaponAccuracyLevel)))
            {
                list.Add(obj.ToString());
            }
            return list;
        }
        /// <summary>
        /// This method returns a list of WeaponDurabilityLevel.
        /// </summary>
        public ArrayList GetWeaponDurabilityLevel()
        {
            ArrayList list = new ArrayList();
            foreach (WeaponDurabilityLevel obj in Enum.GetValues(typeof(WeaponDurabilityLevel)))
            {
                list.Add(obj.ToString());
            }
            return list;
        }
        /// <summary>
        /// This method returns a list of WeaponAnimation.
        /// </summary>
        public ArrayList GetWeaponAnimation()
        {
            ArrayList list = new ArrayList();
            foreach (WeaponAnimation obj in Enum.GetValues(typeof(WeaponAnimation)))
            {
                list.Add(obj.ToString());
            }
            return list;
        }

        public override void PrepareScript()
        {
            base.PrepareScript();
        }
    }

}